The present invention relates to a computer controlled bar code scanner and a method of scanning and, more particularly, to such scanning apparatus and to such a method in which items bearing two bar code labels, each label being of the type having two segments, may be successfully scanned with the correct segment pairs associated together as labels.
Numerous types of stationary laser scanners are known in which a beam of laser light is swept in a scan pattern to find and read a bar code printed on a surface which is presented to the scanner, such as for example a package label. Bar code labels are used on a broad range of retail packages for check-out and inventory purposes. A scanner, located for example at the check-out station in a retail establishment, is used by a clerk automatically to enter product identification data into an associated computer system.
Typically such a scanner includes a laser source, such as a gas discharge laser, which produces a low power laser beam. The beam then passes through appropriate optical lenses and is swept across the package surface by a motor-driven, rotating mirror assembly. The package bearing a bar code label is presented manually to the scanner by a clerk. A portion of the light reflected from the package surface returns through the optical lenses to a detector which provides an electrical signal in dependence upon the level of the reflected light. A signal processing system in the scanner then analyses the electrical signal and translates the scanned characters into data which is transmitted to the host computer.
The computer determines the total price of the products being purchased, as well as storing the identity of the purchased products for inventory and accounting purposes. The host computer may be located in the cash register associated with the scanner. Alternatively, a single host computer may service a number of scanners at the retail establishment.
The basic requirement for high volume transaction laser scanners is to operate in a way that the store check-out clerk does not have to worry about the label orientation as the product label is passed over the scanner. The basic function of the scan pattern generating arrangement is to move the beam of laser light through a three dimensional pattern capable of finding and reading labels accurately in as many label orientations as possible.
A number of different bar codes have come into use. The more common ones are horizontal in design with alternating vertical dark bars and light spaces therebetween. The height of the bars has no purpose other than to permit a scanning beam to successfully pass over the entire length of the bar code to permit its reading in one scanning pass. Common codes include Code Three of Nine, Two of Five, Codabar, Two of Five Non-Interleaved, Two of Five Interleaved, UPC-A, UPC-E, EAN-13, and EAN-8. A label printed in a UPC or EAN family code actually includes two related segments of data.
All UPC/EAN family labels are checked for validity in two ways: the segments comprising the label are checked by having a unique parity pattern and the segments when assembled into a label produce a unique checksum. EAN-13 labels are formed by an EAN-13 left half segment and a UPC-A right half segment. For a given EAN-13 label the check-sum is calculated by weighting the characters making up the segment halves as follows.
______________________________________ EAN-13-LEFT UPC-A-RIGHT HALF SEGMENT HALF SEGMENT ______________________________________ CHARACTER 1 2 3 4 5 6 7 1 2 3 4 5 6 WElGHT 1 3 1 3 1 3 1 3 1 3 1 3 1 ______________________________________
The sum of these weighted values, the checksum, must be evenly divisible by ten or the label is discarded as invalid. Given that the characters of any UPC/EAN label are the decimal digits 0 through 9, only one unique check character will yield a valid checksum.
In some applications, pairs of EAN-13 labels may be located on the same product. It is important for the scanner system to be able to distinguish those pairs of scanned labels which are affixed to the same product and, also, which of the labels in each such pair is the "first" label and which of the labels is the "second" label. Toward this end, the first two characters on each label are predetermined characters if the label is the first or second of a label pair affixed to the same product.
The application of two labels to a single product makes label decoding particularly difficult when the labels are printed in a code in which each label is made up of two segments. When decoding two segment labels, such as those in the UPC/EAN family, prior art scanners do not decode the entire labels at once. Instead, segments which comprise labels are collected into an array and are later assembled into labels. Which of the UPC-A right half segments goes with each of the two EAN-13 left half segments has typically been decided in prior art scanner systems by trial and error. The scanner system would attempt to make an EAN-13 label by selecting a right half segment and a left half segment, and using the paired segments to calculate a checksum. Only in those cases where both of the labels of the EAN-13 label pair yield a valid checksum is the scan data accepted. Even then, however, the right and left segments may not have been properly paired since, in ten percent of the cases, either of the UPC-A right half segments will produce a valid checksum with either of the EAN-13 left half segments. Clearly this is unacceptable since invalid data is inserted into the scanning system, and there is no indication in the operation of the scanning system that such an error has occurred. As a consequence, in prior art systems when this condition was encountered the label pair was rejected and a special error flag was set to let the operator know that this had happened.
Accordingly, there is a need for a scanner and a method of scanning in which several multiple segment bar code labels may be read with the scan data from scanning segments on each label being properly associated after scanning.